home *** CD-ROM | disk | FTP | other *** search
- package Local.Game.HUD
- {
- import Local.*;
- import Local.Game.*;
- import Local.Game.Level.*;
- import Local.Game.Thing.*;
- import Local.Game.World.*;
- import Local.Game.World.Map.*;
- import Local.Game.World.Map.Cell.*;
- import STC9.IO.*;
- import STC9.System.*;
- import flash.display.*;
- import flash.events.*;
- import flash.filters.*;
- import flash.geom.*;
- import flash.text.*;
-
- public class CHUDPanelMap
- {
-
- private static const zPoint:Point;
-
- {
- if(true)
- {
- zPoint = new Point();
- }
- }
-
- private var mcMapMarker:MovieClip;
-
- private var mScalar:Number;
-
- private var mHUD:CHUD;
-
- private var _mousedown:Point;
-
- private var bmdDraw:BitmapData;
-
- private var mcMap:MovieClip;
-
- private var mScanIndex:int;
-
- private var _start:Point;
-
- private var matScalar:Matrix;
-
- private var bLandscape:Bitmap;
-
- private var bmdBG:BitmapData;
-
- public function CHUDPanelMap(param1:CHUD)
- {
- super();
- mHUD = param1;
- mScanIndex = 0;
- }
-
- public function e_MOUSEMOVE_MAPMARKER(param1:MouseEvent = null) : void
- {
- var _loc2_:Number = NaN;
- _loc2_ = _start.x + (mcMap.mouseX - _mousedown.x);
- mHUD.mLandscape.mDrawPosition = new Point(_loc2_ / mScalar,mHUD.mLandscape.mDrawPosition.y);
- UpdateMapMarker();
- }
-
- public function e_MOUSEDOWN_MAPMARKER(param1:MouseEvent = null) : void
- {
- mcMapMarker.stage.addEventListener(MouseEvent.MOUSE_MOVE,e_MOUSEMOVE_MAPMARKER);
- mcMapMarker.stage.addEventListener(MouseEvent.MOUSE_UP,e_MOUSEUP_MAPMARKER);
- _mousedown = new Point(mcMap.mouseX,mcMap.mouseY);
- _start = new Point(mcMapMarker.x,mcMapMarker.y);
- }
-
- public function DrawThings(param1:Array, param2:int) : void
- {
- var _loc3_:Rectangle = null;
- var _loc4_:CThingMain = null;
- _loc3_ = new Rectangle(0,0,2,2);
- for each(_loc4_ in param1)
- {
- §§push(Boolean(_loc4_.mShowOnMap));
- if(true)
- {
- §§push(§§pop() && !_loc4_.mInvisible);
- }
- if(§§pop())
- {
- _loc3_.x = Math.round(_loc4_.mPosition.x * mScalar) - 1;
- _loc3_.y = Math.round(_loc4_.mPosition.y * mScalar) - 1;
- bmdDraw.fillRect(_loc3_,param2);
- DrawThings(_loc4_.mChildren,param2);
- }
- }
- }
-
- public function UpdateMapMarker() : void
- {
- if(true)
- {
- mcMapMarker.x = mHUD.mLandscape.mDrawPosition.x * mScalar;
- mcMapMarker.y = mHUD.mLandscape.mDrawPosition.y * mScalar;
- }
- }
-
- public function e_MOUSEUP_MAPMARKER(param1:MouseEvent = null) : void
- {
- if(true)
- {
- mcMapMarker.stage.removeEventListener(MouseEvent.MOUSE_UP,e_MOUSEUP_MAPMARKER);
- if(true)
- {
- mcMapMarker.stage.removeEventListener(MouseEvent.MOUSE_MOVE,e_MOUSEMOVE_MAPMARKER);
- }
- _mousedown = null;
- }
- }
-
- public function e_DRAW(param1:Event = null) : void
- {
- var _loc2_:CHUDPanel = null;
- if(true)
- {
- CProfiler.StartProfile("PanelMap.Draw");
- }
- _loc2_ = CHUDPanel(param1.currentTarget);
- if(!_loc2_.mDrawInit)
- {
- InitDraw(_loc2_);
- }
- bmdDraw.lock();
- bmdDraw.copyPixels(bmdBG,bmdBG.rect,zPoint);
- DrawThings(mHUD.mLevel.mEnemyContainer.mChildren,16711680);
- DrawThings(mHUD.mLevel.mFriendContainer.mChildren,65280);
- bmdDraw.unlock();
- UpdateMapMarker();
- CProfiler.StopProfile("PanelMap.Draw");
- }
-
- public function InitDraw(param1:CHUDPanel) : void
- {
- var _loc2_:MovieClip = null;
- param1.mDrawInit = true;
- _loc2_ = new CLevelData.mcTerrainGround();
- _loc2_.mcSize.visible = false;
- _loc2_.width = param1.mSize.width;
- _loc2_.scaleY = mScalar = _loc2_.scaleX;
- _loc2_.height = Math.ceil(_loc2_.height);
- if(_loc2_.height > param1.mSize.height)
- {
- _loc2_.height = param1.mSize.height;
- _loc2_.scaleX = mScalar = _loc2_.scaleY;
- _loc2_.width = Math.ceil(_loc2_.width);
- }
- bmdBG = new BitmapData(Math.floor(_loc2_.width),Math.floor(_loc2_.height),false,4280163870);
- bmdDraw = new BitmapData(Math.floor(_loc2_.width),Math.floor(_loc2_.height),false,0);
- matScalar = new Matrix(1,0,0,1,-_loc2_.mcSize.x,-_loc2_.mcSize.y);
- matScalar.scale(_loc2_.scaleX,_loc2_.scaleY);
- bmdBG.draw(_loc2_,matScalar,null,null,null,true);
- param1.mcContainer.addChild(mcMap = new MovieClip());
- mcMap.addChild(bLandscape = new Bitmap(bmdDraw,"auto",false));
- mcMap.addChild(mcMapMarker = new MapMarker());
- mcMap.x = param1.mSize.x;
- mcMap.y = param1.mSize.y;
- param1.mcContainer.x = (param1.mSize.width - bmdBG.width) / 2;
- mcMap.graphics.beginFill(0,1);
- mcMap.graphics.drawRect(0,bmdBG.height,param1.mSize.width,param1.mSize.height - bmdBG.height);
- mcMap.graphics.endFill();
- mcMapMarker.scaleX = mcMapMarker.scaleY = mScalar;
- mcMapMarker.buttonMode = true;
- mcMapMarker.useHandCursor = true;
- mcMapMarker.addEventListener(MouseEvent.MOUSE_DOWN,e_MOUSEDOWN_MAPMARKER);
- new CHUDTooltip(mHUD,mcMapMarker,"Click left button and drag to scroll the screen. You can also use Arrow keys and Shift will scroll faster.");
- }
- }
- }
-